<?php
/**
* 名称：要闻模块控制器。
* 描述：要闻模块相关的控制响应程式。
*/
class Controller_News_Highlights extends Controller_Public_Move{
    /**
    * 表单字段名堆栈。
    * @var     array
    * @access  protected
    */
    protected $MoveSetup=array(
        'table'=>'news_highlights'
    );

    /**
    * 表单字段名堆栈。
    * @var     array
    * @access  protected
    */
    protected $FormLabel=array(
        'title','link','summary'
    );

    /**
    * 描述：列表视图程式。
    * @access protected
    * @return void
    */
    protected function Listview(){
        $data=array(
            'meta'=>array_merge(
                Model_Common_OUI::Breadcrumb(
                    Model_News::OUI_Breadcrumb('list'),
                    Model_News::OUI_Breadcrumb('highlights_list','text')
                ),
                Model_Common_OUI::Button(array(
                    'text'=>'新增要闻',
                    'link'=>Route::MakeHyperlink(':news_highlights::add'),
                )),
                array(
                    'list_title'=>'信息列表'
                )
            ),
            'base'=>self::$Database->GetLimit(
                'SELECT * FROM '.self::$Database->Table('news_highlights').' ORDER BY orderNumber DESC',
                Route::GetArguments('page'),
                10
            ),
            'urlArguments'=>array(
                'class'=>'0'
            )
        );
        //~
        self::$Template->Assign('data',$data);
        self::$Template->Display('oui/news/highlights/list.html');
    }

    /**
    * 描述：添加之视图程式。
    * @access protected
    * @return void
    */
    protected function Add(){
        $data=array(
            'meta'=>array_merge(
                Model_Common_OUI::Breadcrumb(
                    Model_News::OUI_Breadcrumb('list'),
                    Model_News::OUI_Breadcrumb('highlights_list'),
                    Model_News::OUI_Breadcrumb('highlights_add','text')
                ),
                array(
                    'action'=>Route::MakeHyperlink(':news_highlights::add')
                )
            )
        );
        self::$Template->Assign('data',$data);
        self::$Template->Display('oui/news/highlights/form.html');
    }

    /**
    * 描述：添加之响应程式。
    * @access protected
    * @return void
    */
    protected function Insert(){
        $data=Model::Post($this->FormLabel);
        //~
        self::$Database->BeginTransaction();
        if(self::$Database->Insert(self::$Database->Table('news_highlights'),$data)){
            $id=$data['id']=self::$Database->LastInsertId();
            if(self::$Database->ExecParameterized('UPDATE '.self::$Database->Table('news_highlights').' SET orderNumber=? WHERE id=?',array($id,$id))){
                $isInsert=TRUE;
            }
            else{
                $isInsert=FALSE;
            }
        }
        else{
            $isInsert=FALSE;
        }
        //~
        if($isInsert){
            self::$Database->Commit();
        }
        else{
            self::$Database->Rollback();
        }
        //~
        $arguments=array(
            'notice'=>'新增要闻成功，3秒钟后自动返回。',
            'link'=>array(
                array('name'=>'继续添加','href'=>Route::MakeHyperlink(':news_highlights::add')),
                array('name'=>'前往修改','href'=>Route::MakeHyperlink(':news_highlights::edit','id:'.$data['id'])),
                array('name'=>'返回列表','href'=>Route::MakeHyperlink(':news_highlights::listview'))
            ),
            'autoTurn'=>array(TRUE,3)
        );
        $this->Feedback($isInsert,$arguments,'发布失败，请稍候再试！');
    }

    /**
    * 描述：修改之视图程式。
    * @access protected
    * @return void
    */
    protected function Edit(){
        $data=array(
            'meta'=>array_merge(
                Model_Common_OUI::Breadcrumb(
                    Model_News::OUI_Breadcrumb('list'),
                    Model_News::OUI_Breadcrumb('highlights_list'),
                    Model_News::OUI_Breadcrumb('highlights_edit','text')
                ),
                array(
                    'action'=>Route::MakeHyperlink(':news_highlights::update')
                )
            ),
            'base'=>self::$Database->GetRow(
                'SELECT * FROM '.self::$Database->Table('news_highlights').' WHERE id=?',
                array(Route::GetArguments('id'))
            )
        );
        self::$Template->Assign('data',$data);
        self::$Template->Display('oui/news/highlights/form.html');
    }

    /**
    * 描述：修改之响应程式。
    * @access protected
    * @return void
    */
    protected function Update(){
        $data['base']=Model::Post($this->FormLabel,array('id'=>post('id')));
        $data['condition']=array('sql'=>'id=?','parameters'=>array($data['base']['id']));
        //~
        $isUpdate=self::$Database->Update(self::$Database->Table('news_highlights'),$data['base'],$data['condition']);
        $arguments=array(
            'notice'=>'资讯修改成功，3秒钟后自动返回。',
            'link'=>array(
                array('name'=>'继续修改','href'=>Route::MakeHyperlink(':news_highlights::edit','id:'.$data['base']['id'])),
                array('name'=>'返回列表','href'=>Route::MakeHyperlink(':news_highlights::listview'))
            ),
            'autoTurn'=>array(TRUE,3)
        );
        $this->Feedback($isUpdate,$arguments,'发布失败，请稍候再试！');
    }

    /**
    * 描述：资讯删除程式之删除。
    * @access protected
    * @return void
    */
    protected function Delete(){
        $id=Route::GetArguments('id');
        //~
        $this->Feedback(
            self::$Database->ExecParameterized(
                'DELETE FROM '.self::$Database->Table('news_highlights').' WHERE id=?',array($id)
            ),
            $_SERVER['HTTP_REFERER'],
            '删除失败，请稍候再试！'
        );
    }
}